package utilities;

import structure.Map;
import structure.Sector;

public class SphereMapMaker {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		SphereMaker(1000,1000,1000,800);

	}
	
	
	public static void SphereMaker(int cx,int cy,int cz,int r)
	{
		int nombre = 0;
		Map map = new Map(new int[]{cx+r+200,cy+r+200 ,cz+r+200},"sphere"+r);
		for( int secX=0; secX< map.getWidth()/Sector.SIZE+1;secX++)
		{
			for(int secY =0;secY< map.getHeight()/Sector.SIZE+1;secY++)
			{
				for(int secZ = 0;secZ < map.getDepth()/Sector.SIZE+1;secZ++)
				{	
					nombre++;
					System.out.println("joyeuse génération du secteur ("+secX+","+secY+","+secZ+")" +
							", Secteur number "+ nombre + " / "+ (map.getWidth()/Sector.SIZE+1)
									*(map.getHeight()/Sector.SIZE+1)*(map.getDepth()/Sector.SIZE+1) );
					for(int x = 0;x< Sector.SIZE;x++)
					{
						for(int y = 0;y< Sector.SIZE;y++)
						{
							for(int z = 0;z< Sector.SIZE;z++)
							{
								int posX = secX*Sector.SIZE + x;
								int posY = secY*Sector.SIZE + y;
								int posZ = secZ*Sector.SIZE + z;
								

								if(  Math.pow(posX -cx ,2) + Math.pow(posY  -cy,2) +Math.pow(posZ - cz, 2) < r*r )
									map.setBlock(new int[]{posX,posY,posZ}, (byte) 1);
								else
									map.setBlock(new int[]{posX,posY,posZ}, (byte) 0);
	
							}
						}
					}
				}
			}
		}
		map.save();
	}

	
}
